import pandas as pd
import os


def excel_to_txt(excel_flile_path, excel_file_name):

    print('Enter Fx:\n')
    # 打开Excel文件
    with pd.ExcelFile(excel_file_path) as xls:
        # 获取所有工作表的名称
        sheet_names = xls.sheet_names

        # 遍历所有工作表
        for sheet_name in sheet_names:
            # 读取当前工作表的数据
            df = pd.read_excel(xls, sheet_name=sheet_name)

            # 创建以工作表名命名的文件夹
            folder_path = f'{excel_flile_path}{sheet_name}'
            if not os.path.exists(folder_path):
                os.makedirs(folder_path)

            # 遍历DataFrame的每一行
            for index, row in df.iterrows():
                # 为每一行创建一个txt文件，文件名可以包含行号
                txt_file_name = f"{sheet_name+''+excel_file_name}_{index+1}.txt"
                txt_file_path = os.path.join(folder_path, txt_file_name)

                # 打开文件准备写入
                with open(txt_file_path, 'w', encoding='utf-8') as txt_file:
                    # 写入第三列的值作为第一行
                    txt_file.write(f"{row.iloc[2]}\n")
                    # 写入第一列的值作为第二行
                    txt_file.write(f"{row.iloc[0]}\n")

    # 打印完成消息
    print('所有工作表的行已转换为单独的txt文件，并保存在对应的文件夹中。')

if __name__ == "__main__":
    # Excel文件路径
    excel_file_path = '../A7_excel_data/'
    excel_file_name = 'A7-新闻文本分类算法.xlsx'
    full_excel_file_path = os.path.join(excel_file_path, excel_file_name)

    # 检查路径是否存在
    if not os.path.exists(excel_file_path):
        print(f"错误：提供的路径 '{excel_file_path}' 不存在。")
    else:
        # 检查文件是否存在
        if not os.path.isfile(full_excel_file_path):
            print(f"错误：文件 '{excel_file_name}' 在路径 '{excel_file_path}' 下不存在。")
        else:
            # 尝试执行转换函数
            excel_to_txt(excel_file_path, excel_file_name)
